1. Field of the Invention
This invention relates to a coding apparatus, a decoding apparatus, a coding method and a decoding method for moving picture data.
2. Description of the Related Art
Known coding standards for moving picture data include MPEG-2 (ISO/IEC13818-2 Information Technology—Generic Coding of moving pictures and associated audio information: Video) and MPEG-4 (ISO/IEC 14496 Information Technology—Generic Coding of Audio-Visual Object).
Additionally, new coding standards for moving picture data that have been proposed in recent years include H. 264/MPEG-4 AVC (ITU-T Rec. H 264 ISO/IEC 14496-10 AVC) and WMV 9 (Windows Media Video 9 (trademark)).
According to any of these coding standards, a picture (frame) is divided into a predetermined number of blocks (luminance components: 16 pixels×16 pixels) and the coding process and the decoding process is conducted on a block by block basis. Such a pixel block is referred to as macro block.
It may be conceivable to bring in a plurality of macro block processing engines (which may be hardware modules or software modules) and have these macro block processing engines operate concurrently in order to conduct a coding or decoding process at high speed.
According to the MPEG-2, when a macro block is coded or decoded, the outcome of the coding or decoding process, whichever appropriate, carried out on the left side macro block that is located immediately adjacent to the macro block in question is referred to as shown in FIG. 29 of the accompanying drawings. In other words, the coding or decoding process on the immediately adjacently located left side macro block has to be completed when a coding or decoding process, whichever appropriate, is conducted on the macro block in question. The relationship as described above is referred to as “having a dependency relationship with the left side”.
Since each macro block has a dependency relationship with the left side according to MPEG-2, when a plurality of macro block processing engines are driven to operate concurrently, it may be so arranged that each macro block processing engine processes a group of transversally arranged macro blocks sequentially from the left end one. A group of macro blocks arranged transversally is referred to as a “slice”